package per.vivicat;

public class String2 {
	public static void main(String[] args){
		//System.out.println(withoutString("This is a FISH", "IS"));
	}
	
	public String doubleChar(String str) {
		  String strsub="";
		  for(int i=0;i<str.length();i++){
			  strsub=strsub+str.substring(i, i+1)
			  +str.substring(i, i+1);
		  }
		  return strsub;
	}
	
	public int countHi(String str) {
		int count=0;
		for(int i=0;i<str.length()-1;i++){
			if(str.substring(i, i+2).equals("hi"))
				count++;
		}
		return count;
	}
	
	public boolean catDog(String str) {
		int a=0,b=0;
		if(str.length()>2){
			for(int i=0;i<str.length()-2;i++){
				if(str.substring(i, i+3).equals("cat"))
					a++;
			}
			for(int i=0;i<str.length()-2;i++){
				if(str.substring(i, i+3).equals("dog"))
					b++;
			}
		}
		return a==b;
	}
	
	public int countCode(String str) {
		int count=0;
		if(str.length()>4){
			for(int i=0;i<str.length()-4;i++){
				if(str.substring(i,i+2).equals("co")
						&&str.substring(i+3,i+4).equals("e"))
					count++;
			}
		}
		return count;
	}
	
	public boolean endOther(String a, String b) {
		a=a.toLowerCase();
		b=b.toLowerCase();
		int al=a.length();
		int bl=b.length();
		if(al>bl){
				return a.substring(al-bl, al).equals(b.substring(0, bl));
		}
		else return a.substring(0, al).equals(b.substring(bl-al, bl));
	}
	
	public boolean xyzThere(String str) {
		if(str.length()>2){	
			for(int i=0;i<str.length()-2;i++){
				if((str.substring(i, i+3).equals("xyz")))
					return true;
				if((str.substring(i, i+1).equals(".")))
					i+=1;
			}
		}
		return false;
	}
	
	public boolean bobThere(String str) {
		if(str.length()>2){	
			for(int i=0;i<str.length()-2;i++){
				if((str.substring(i, i+1).equals("b"))
						&&(str.substring(i+2, i+3).equals("b")))
					return true;
			}
		}
		return false;
	}
	
	public boolean xyBalance(String str) {
		for(int i=str.length()-1;i>=0;i--){
			if(str.charAt(i)=='y')
				return true;
			if(str.charAt(i)=='x')
				return false;	
		}
		return true;
	}
	
	public String mixString(String a, String b) {
		String ab="";
		int al=a.length();
		int bl=b.length();
		if(al>bl){
			for(int i=0;i<bl;i++){
				ab=ab+a.substring(i, i+1)+b.substring(i, i+1);
			}
			ab=ab+a.substring(bl,al);
		}
		else{
			for(int i=0;i<al;i++){
				ab=ab+a.substring(i, i+1)+b.substring(i, i+1);
			}
			ab=ab+b.substring(al,bl);
		}
		return ab;
	}
	
	public String repeatEnd(String str, int n) {
		String result="";
		while(n>=0){
			result=result+str.substring(0,n);
			n--;
		}
		return result;
	}
	
	
	public String repeatSeparator(String word, String sep, int count) {
		String str="";
		while(count>0){
			str=str+word;
			count--;
			if(count>0){
				str=str+sep;
			}
		}
		return str;
	}
	
	public boolean prefixAgain(String str, int n) {
		String strsub=str.substring(0, n);
		for(int i=n;i<=str.length()-n;i++){
			if(str.substring(i, i+n).equals(strsub))
				return true;
		}
		return false;
	}
	
	public boolean xyzMiddle(String str) {
		int sl=str.length();
		if(sl>=3){
		String strsub=str.substring(sl/2-1, sl/2+2);
		if(sl%2==0)
			return(strsub.equals("xyz")
					||str.substring(sl/2-2,sl/2+1).equals("xyz"));
		else 
			return(strsub.equals("xyz"));
		}
		return false;
	}
	
	public String getSandwich(String str) {
		for(int i=0;i<str.length()-5;i++){
			if(str.substring(i,i+5).equals("bread")){
				for(int j=str.length()-5;j>i;j--){
					if(str.substring(j,j+5).equals("bread"))
					return str.substring(i+5, j);
				}
			}
		}
		return "";
	}
	
	public static boolean sameStarChar(String str) {
		for(int i=1;i<str.length()-1;i++){
			if(str.charAt(i)=='*'){
				if(str.charAt(i-1)!=str.charAt(i+1)){
					return false;
				}
			}
		}
		return true;
	}
	
	public String oneTwo(String str) {
		if(str.length()%3!=0){
			str=str.substring(0, str.length()-str.length()%3);
		}
		for(int i=0;i<str.length()-2;i+=3){
			str=str.substring(0, i)+str.charAt(i+1)+
				+str.charAt(i+2)+""+str.charAt(i)+str.substring(i+2);
		}
		return str;
	}
	
	public String zipZap(String str) {
		for(int i=0;i<str.length()-2;i++){
			if(str.charAt(i)=='z'&&str.charAt(i+2)=='p'){
				str=str.substring(0,i)
						+str.charAt(i)+str.substring(i+2);
			}
		}
		return str;
	}
	
	public static String starOut(String str) {
		int a=0;
		if(str.equals("*")){
			return "";
		}
		for(int i=0;i<str.length();i++){
			if(str.charAt(i)=='*'){
				for(int j=i+1;j<str.length();j++){
					if(str.charAt(j)!='*'){
						if(i==0)
							str=str.substring(j+1);
						else
							str=str.substring(0, i-1)+str.substring(j+1);
						a=1;break;
					}
				}
				if(a==0)
					return str.substring(0, i-1);
				i=0;a=0;	
			}
		}
		return str;
	}
	
	public String plusOut(String str, String word) {
		int wl=word.length();
		int sl=str.length();
		for(int i=0;i<sl;i++){
			if(i+wl<=sl&&str.substring(i, i+wl).equals(word))
				i=i+wl-1;
			else
				str=str.substring(0,i)+"+"+str.substring(i+1);
		}
		return str;
	}
	
	public static String wordEnds(String str, String word) {
		String newstr="";
		int wl=word.length();
		int sl=str.length();
		if(wl!=sl){
			if(str.startsWith(word)){
				newstr+=str.charAt(wl);
			}
			for(int i=1;i<sl-wl;i++){
				if(str.substring(i, i+wl).equals(word)){
					newstr=newstr+str.charAt(i-1)+str.charAt(i+wl);
				}
			}
			if(str.endsWith(word)){
				newstr+=str.charAt(sl-wl-1);
			}
		}
		return newstr;	
	}
}